﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Collections.Generic;
using System.IO;

using CE.User;
using CE.Global;
using CE.Database;
using CE.CarInsurance;

public partial class carinsurance_PremiumDownload : System.Web.UI.Page
{
    protected override void InitializeCulture()
    {
        String selectedCulture = CE.Global.General.SetCulture();
        base.InitializeCulture();
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session[CE.Global.General.UserId] == null)
        {
            Response.Redirect("~/SiteUserSecureLogin.aspx");
        }
        if (!IsPostBack)
        {
            if (Request.QueryString["carid"] != null)
            {
                
                GeneratePremium(Convert.ToInt64(Request.Params["carid"].ToString()), "N/A", Convert.ToInt16(Resources.General.LangOption));
            }
        }
    }

    public void GeneratePremium(Int64 CECarId, string VehicleNo, Int16 LangOption)
    {

        Int32 _Count = 0;
        Label lblContent = new Label();
        string _html = "";
        string _fileName = "FileName";
        _fileName = "Premium_" + CECarId;
        string _UserCover = "";
        string _ProductType = "CIN";
        DataSet _dsPremium = new DataSet();
        BrokerPremiumDB _prokerpremiumdb = new BrokerPremiumDB();
        _dsPremium = _prokerpremiumdb.GetBrokerPremium(CECarId, _ProductType, LangOption);
        if (_dsPremium.Tables[0].Rows.Count > 0)
        {
            if (_dsPremium.Tables.Count > 1)
            {
                if (_dsPremium.Tables[1].Rows.Count > 0)
                {
                    _UserCover = _dsPremium.Tables[1].Rows[0]["ProviderCoverTypeDesc"].ToString();
                }
            }

            _Count = _dsPremium.Tables[0].Rows.Count;

            if (_Count > 4)
            {
                _Count = 4;
            }

            #region variables
            string[] _Insurer = new string[_Count];
            string[] _Workshop = new string[_Count];
            string[] _Premium = new string[_Count];
            string[] _Excess = new string[_Count];
            string[] _QuoteId = new string[_Count];
            string[] _Cover = new string[_Count];
            string[] _Package = new string[_Count];
            #endregion

            for (int i = 0; i < _Count; i++)
            {
                #region Values assign to variables
                _Insurer[i] = _dsPremium.Tables[0].Rows[i]["CompanyName"].ToString();
                _Workshop[i] = _dsPremium.Tables[0].Rows[i]["WorkShopDesc"].ToString();
                _Premium[i] = "" + Convert.ToSingle(_dsPremium.Tables[0].Rows[i]["Premium"].ToString()).ToString("#,0.00") + " " + Resources.CarInsurance.Baht;
                _Excess[i] = "" + _dsPremium.Tables[0].Rows[i]["Excess"].ToString();
                _QuoteId[i] = _dsPremium.Tables[0].Rows[i]["Info1"].ToString();
                _Cover[i] = _dsPremium.Tables[0].Rows[i]["ProviderCoverTypeDesc"].ToString();
                _Package[i] = _dsPremium.Tables[0].Rows[i]["Package"].ToString();
                #endregion
            }

            #region Html

            Uri myUri = new Uri(HttpContext.Current.Request.Url.ToString());
            string domainUrl = "";
            string _strCXLive = CE.Configuration.MyConfigurationManager.GetAppSettingValue("CXCRMIsCXLive");
            if (_strCXLive == "2")
            {
                domainUrl = "http://" + myUri.Authority;
            }
            else
            {
                domainUrl = "http://" + myUri.Host;
            }
            HyperLink _hplLogo = new HyperLink();
            _hplLogo.NavigateUrl = "~/images/logos/gluaygluay.png";

            
            string imgUrl = domainUrl + _hplLogo.ResolveUrl(_hplLogo.NavigateUrl);

            _html = "<table style='width: 100%; background-color: white;' cellpadding='0' cellspacing='0'>"

                    + "<tr>"
                    + "<td align='left' style='width:100%'><img src='" + imgUrl + "' alt='กล้วยๆ.com' /><h1>กล้วยๆ.com</h1></td>"
                    + "</tr>"

                    + "<tr>"
                    + "<td align='left' style='width:100%'>&nbsp;</td>"
                    + "</tr>"

                    + "<tr>"
                    + "<td align='left' style='width:100%'>Below are the instant competitive quotations sourced from some insurers.</td>"
                    + "</tr>"

                    + "<tr>"
                    + "<td align='left' style='width:100%'>&nbsp;</td>"
                    + "</tr>"

                    

                    + "<tr>"
                    + "<td align='left' style='width:100%'><b>" + Resources.CarInsurance.Quotes + "</b></td>"
                    + "</tr>"

                    + "<tr>"
                    + "<td align='left' style='width:100%'>"
                    + "<table style='width: 100%; background-color: white;' cellpadding='5' cellspacing='2' border='1'>"
                    + "<tr>"
                    + "<td align='left' style='width:150px'>&nbsp;</td>";
            for (int j = 1; j <= _Count; j++)
            {
                _html += "<td align='center' style='width:250px'>Quotation " + j + "</td>";
            }
            _html += "</tr>"

            + "<tr>"
            + "<td align='left' style='width:150px'>" + "Quote " + Resources.CarInsurance.ReferenceNo + "</td>";
            for (int j = 1; j <= _Count; j++)
            {
                _html += "<td align='center' style='width:250px'> " + _QuoteId[j - 1].ToString() + "</td>";
            }
            _html += "</tr>"

            + "<tr>"
            + "<td align='left' style='width:150px'>" + Resources.General.InsuranceCompany + "</td>";
            for (int j = 1; j <= _Count; j++)
            {
                _html += "<td align='center' style='width:250px'> " + _Insurer[j - 1].ToString() + "</td>";
            }
            _html += "</tr>"

            + "<tr>"
            + "<td align='left' style='width:150px'>" + Resources.CarInsurance.GarageType + "</td>";
            for (int j = 1; j <= _Count; j++)
            {
                _html += "<td align='center' style='width:250px'> " + _Workshop[j - 1].ToString() + "</td>";
            }
            _html += "</tr>"

            + "<tr>"
            + "<td align='left' style='width:150px'>" + Resources.CarInsurance.InsuranceType + "</td>";
            for (int j = 1; j <= _Count; j++)
            {
                _html += "<td align='center' style='width:250px'> " + _Cover[j - 1].ToString() + "</td>";
            }
            _html += "</tr>"

            + "<tr>"
            + "<td align='left' style='width:150px'>" + Resources.General.PackageName + "</td>";
            for (int j = 1; j <= _Count; j++)
            {
                _html += "<td align='center' style='width:250px'> " + _Package[j - 1].ToString() + "</td>";
            }
            _html += "</tr>"

            + "<tr>"
            + "<td align='left' style='width:150px'>" + Resources.General.PremiumAmount + "</td>";
            for (int j = 1; j <= _Count; j++)
            {
                _html += "<td align='center' style='width:250px; color:blue; font-weight:bold;'> " + _Premium[j - 1].ToString() + "</td>";
            }
            _html += "</tr>"

            
            + "</table>"
            + "</td>"
            + "</tr>"

            + "<tr>"
            + "<td align='left' style='width:100%'>&nbsp;</td>"
            + "</tr>"

            

            + "<tr>"
            + "<td align='left' style='width:100%'>หมายเหตุ:</td>"
            + "</tr>"

            + "<tr>"
            + "<td align='left' style='width:100%'>1.ใบเสนอราคานี้มีอายุ 30 วัน นับจากวันที่ท่านได้ทำรายการการสั่งซื้อ และอาจมีการเปลี่ยนแปลงตามเงื่อนไขของบริษัทฯ</td>"
            + "</tr>"

            + "<tr>"
            + "<td align='left' style='width:100%'>2.เบี้ยประกันและรายละเอียดการรับประกันฯนี้ เป็นไปตามหลักเกณฑ์การพิจารณารับประกันฯ ของบริษัทประกันภัยผู้รับประกัน โดยทางบริษัทคอมแพร์เอ็กซ์เพรสฯ จะแจ้งให้ทราบทันทีหากมีการเปลี่ยนแปลง</td>"
            + "</tr>"

            + "<tr>"
            + "<td align='left' style='width:100%'>3.ความคุ้มครองจะเริ่มขึ้นหลังจากที่บริษัทประกันฯได้ทำการอนุมัติกรมธรรม์ โดยที่บริษัทคอมแพร์เอ็กซ์เพรสฯต้องได้รับชำระค่าเบี้ยประกันฯเรียบร้อย และได้รับเอกสารประกอบการพิจารณารับประกันฯครบถ้วนแล้วเท่านั้น</td>"
            + "</tr>"

            + "<tr>"
            + "<td align='left' style='width:100%'>4.กรณีที่เบี้ยประกันภัยมีการเปลี่ยนแปลง และหากท่านได้ทำการชำระเงินให้กับบริษัทคอมแพร์เอ็กซ์เพรสฯ แล้วบริษัทฯจะติดต่อท่านทันที เพื่อทำการคืนเงิน (กรณีชำระเกิน) หรือเรียกเก็บค่าเบี้ยประกันเพิ่มเติม (กรณีเพิ่มเบี้ย) ตามที่ได้มีการยืนยันจากบริษัทประกันภัยผู้รับประกันฯ</td>"
            + "</tr>"

            + "</table>";
            #endregion

            string _HeaderText = "";
            lblPremiumHtml.Text = _html;
            ExportHtml(_fileName, lblPremiumHtml, _HeaderText);
        }
    }

    public void ExportHtml(string fileName, Label lblPremiumHtml, string headerText)
    {
        string attachment = "attachment; filename=" + fileName + ".xls";
        Response.ClearContent();
        Response.AddHeader("content-disposition", attachment);
        Response.ContentType = "application/octet-stream";
        StringWriter sw = new StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        HtmlForm frm = new HtmlForm();
        frm.InnerHtml = headerText;
        lblPremiumHtml.Parent.Controls.Add(frm);
        frm.Attributes["runat"] = "server";
        frm.Controls.Add(lblPremiumHtml);
        frm.RenderControl(htw);
        Response.Write(sw.ToString());
        Response.End();

        
    }

}
